import { defineStore } from 'pinia'
import { logout } from '@/api'

export const useUserStore = defineStore('user', {
  state: () => ({
    token: null,
    expires: null,
    logo_timestamp: null,
    logo_form: { phone: '', password: '' },
    avatar: 'https://cdn.uviewui.com/uview/album/1.jpg',
    userInfo: { 
      id: -1, 
      nickname: '未登录用户',  // 添加默认昵称
      avatar: 'https://cdn.uviewui.com/uview/album/1.jpg', // 添加默认头像
      phone_number: '', 
      roles: [] ,
	  latitude: '', 
	  longitude: '',
	  h5_latitude:'',
	  h5_longitude:'',
	  cityName:'',
	  districtName:''
	}
  }),
  actions: {
    async logout_init(type = true) {
      try {
        if(type) await logout()
        this.$reset() // 使用 Pinia 的 $reset 方法重置状态
        uni.$uv.toast('退出成功')
        return true
      } catch (error) {
        console.error('退出失败:', error)
        return false
      }
    },
	
    // 添加更新用户信息的方法
    updateUserInfo(payload) {
	  // 安全合并所有字段，不影响未传入字段
	  this.userInfo = Object.assign({}, this.userInfo, payload)
	}
	
	
  },
  
  
  persist: {
    paths: ['token', 'userInfo', 'avatar'] // 只持久化必要字段
  }
})